A low density parity check (LDPC) code is a systematic code in that the encoding process adds parity bits and does not change the source bits. The encoder delay can be zero delay for the source bits in that the source bits can appear at the output of the encoder, as they are received. The encoder delay for the parity bits is small, for example 64 clock cycles to calculate the first parity bit after the last source bit. The combination of the source bits and the parity bits is referred to as an LDPC block. FIG. 1 shows an example of the encoder output for two blocks of source bits 100,102 at the encoder input referred to as block N and block N+1. The encoder output includes block N 100, block N parity bits 104, block N+1 102, and block N+1 parity bits.
However, the decoder delay is at least one full LDPC block. This is due to the fact that LDPC decoding cannot start before the last bit of the block is received. For example, in an LDPC code implementation in which LDPC blocks contain 8k bits, the decoding latency will always be larger than the time it takes to receive the full 8k LDPC block. Furthermore, the decoding process often requires many iterations which may take additional time.
FIG. 2 shows an example of the decoder latency for the two blocks of source bits 100,102 and the two blocks of parity bits 104,106 introduced with reference to FIG. 1. For the decoding process for block N 100 to begin, the decoder must receive all the bits of the block, and the decoding process may take more time up to another block duration or longer. In the illustrated example, the decoded block N 110 is not available until the bits of block N+1 102 have also been received. The decoder latency is indicated at 120.